//
//  UIBarButtonItem+Factory.h
//  GANGAIKit
//
//  Created by fh on 2019/11/6.
//  Copyright © 2019 cashchina. All rights reserved.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

/// UIBarButtonItem控件工厂类
@interface UIBarButtonItem (Factory)

/// 快速创建一个 UIBarButtonItem
/// @param imageName 普通状态下的图片
/// @param highImageName 高亮状态下的图片
/// @param target 目标
/// @param action 事件
+ (UIBarButtonItem *)gakki_itemWithImageName:(NSString * __nullable)imageName highImageName:(NSString * __nullable)highImageName target:(id)target action:(SEL)action;

/// 快速创建一个 UIBarButtonItem
/// @param imageName 普通状态下的图片
/// @param target 目标
/// @param action 事件
+ (UIBarButtonItem *)gakki_itemWithImageName:(NSString * __nullable)imageName target:(id)target action:(SEL)action;

/// 通过系统的方法，初始化一个UIBarButtonItem
/// @param title 显示的文字，例如'完成'、'取消'
/// @param titleColor title的颜色，if nil ，The Color is [UIColor whiteColor]
/// @param imageName 图片名称
/// @param target 目标
/// @param selector 事件
/// @param textType 是否是纯文字
+ (UIBarButtonItem *)gakki_systemItemWithTitle:(NSString * __nullable)title
                                 titleColor:(UIColor * __nullable)titleColor
                                  imageName:(NSString * __nullable)imageName
                                     target:(id)target
                                   selector:(SEL)selector
                                   textType:(BOOL)textType;

/// 通过自定义的方法，快速初始化一个UIBarButtonItem，内部是按钮
/// @param title 显示的文字，例如'完成'、'取消'
/// @param titleColor title的颜色，if nil ，The Color is [UIColor whiteColor]
/// @param imageName 图片名称
/// @param target 目标
/// @param selector 事件
/// @param contentHorizontalAlignment 文本对齐方向
+ (UIBarButtonItem *)gakki_customItemWithTitle:(NSString * __nullable)title
                                 titleColor:(UIColor * __nullable)titleColor
                                  imageName:(NSString * __nullable)imageName
                                     target:(id)target
                                   selector:(SEL)selector
                 contentHorizontalAlignment:(UIControlContentHorizontalAlignment)contentHorizontalAlignment;

/// 快速创建一个导航栏leftBarButtonItem 用于返回（pop）或者（dismiss），切记只能是纯图片 （eg: < or X）且可以加大点击范围
/// @param title 显示的文字，例如'完成'、'取消'
/// @param imageName 返回按钮的图片
/// @param target 目标
/// @param action 事件
+ (UIBarButtonItem *)gakki_backItemWithTitle:(NSString * __nullable)title
                                imageName:(NSString * __nullable)imageName
                                   target:(id)target
                                   action:(SEL)action;

@end

NS_ASSUME_NONNULL_END
